﻿using DFGK_WMS.Model.DTO;
using DFGK_WMS.Model.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DFGK_WMS.IRepository
{
    public interface IRFIDRepository : IBaseRepository<TInventory>
    {
        /// <summary>
        /// 标签表导入数据
        /// </summary>
        /// <param name="tags"></param>
        /// <returns></returns>
        bool UpdRFID(List<TPriceTags> tags);

        /// <summary>
        /// 标签点亮接口
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        RFIDMsgDto LightUp(string path, object data);

        /// <summary>
        /// 巷道灯点亮接口
        /// </summary>
        /// <param name="path"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        RFIDMsgDto RoadwayLightUp(string path, object data);

        /// <summary>
        /// 巷道灯点亮接口
        /// </summary>
        /// <param name="path"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        RFIDMsgDto RoadwayLightExtinguish(string path, object data);

        /// <summary>
        /// 查询熄灭巷道灯接口
        /// </summary>
        /// <param name="msg"></param>
        /// <param name="routeways"></param>
        /// <returns></returns>
        RoadwayLightUpDto GetLightByRoadwayDown(out string msg, List<string> cellCode, List<TRouteway> routeways);

        /// <summary>
        /// 获取巷道
        /// </summary>
        /// <param name="cellCode"></param>
        /// <returns></returns>
        List<TRouteway> GetTroutway(out string msg,List<string> cellCode);

        /// <summary>
        /// 根据巷道查询巷道灯
        /// </summary>
        /// <param name="routeways"></param>
        /// <returns></returns>
        RoadwayLightUpDto GetLightByRoadway(out string msg,List<string> cellCode,List<TRouteway> routeways);

        /// <summary>
        /// 根据仓位编码查询相关信息
        /// </summary>
        /// <param name="cellCodeList"></param>
        /// <returns></returns>
        PriceTagIlluminatedDto GetMsgByCellCode(List<string> cellCodeList);

        /// <summary>
        /// 根据仓位编码查询相关信息
        /// </summary>
        /// <param name="cellCodeList"></param>
        /// <returns></returns>
        RFIDLampDirectDto GetRFIDMsgByCellCode(List<string> cellCodeList);

        /// <summary>
        /// 根据仓位编码查询相关信息（熄灭）
        /// </summary>
        /// <param name="cellCodeList"></param>
        /// <returns></returns>
        RFIDLampDirectDto GetRFIDMsgByCellCodeExtinguish(List<string> cellCodeList);

        /// <summary>
        /// 标签查询环境信息
        /// </summary>
        /// <param name="path"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        RFIDMsgDto BindMaterialAddRFID(string path, object data);

        /// <summary>
        /// 标签点亮
        /// </summary>
        /// <param name="path"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        RFIDMsgDto RFIDLightUp(string path, object data);

        /// <summary>
        /// 标签熄灭
        /// </summary>
        /// <param name="path"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        RFIDMsgDto RFIDLightDown(string path, object data);


        /// <summary>
        /// 点亮标签 单个仓位查询
        /// </summary>
        /// <param name="cellCode"></param>
        /// <returns></returns>
        RFIDLampDirectDto GetRFIDMsgByCellCode(out string msg,string cellCode);
    }
}
